package animal;
import java.util.List;

/**
 * Ein Objekt dieses Typs stellt ein Fresstier dar.  
 * Ein Fresstier kann Ameisen verspeisen.
 * @author Michael Schoell, Simone Huber, Shkelqim Turkaj
 *
 */
public interface FresstierInterface {

	/**
	 * Gibt an, ob das Fresstier Hunger hat. Wurden genuegend Ameisen verspeist,
	 * hat das Fresstier keinen Hunger mehr.
	 * 
	 * @return true, wenn das Fresstier Hunger hat.
	 */
	public boolean hatHunger();
	
	/**
	 * Ermittelt aus der Menge der Ameisen die Ameise, die ihm am naechsten ist.
	 * @param ameisen die Menge aller Ameisen, die als potentielles Futter in Frage kommt.
	 * @return die Ameise, die dem Kaefer als naechstes ist; null, falls keine Ameisen in der Liste vorhanden sind
	 */
	public Ameise findeNaechsteAmeise(List<Ameise> ameisen);
	
	
	/**Testet, ob die uebergebene Ameise zu diesem Zeitpunkt verspeist werden kann.
	 * Eine Ameise kann beispielsweise nur verspeist werden, wenn das Fresstier
	 * Hunger hat und wenn sich die Ameise nicht zu wei entfernt befindet.
	 * @param a die Ameise
	 * @return true, wenn die Ameise verspeist werden kann, false sonst.
	 */
	public boolean verspeisenDerAmeiseMoeglich(Ameise a);
	
	/**
	 * Gibt die Anzahl der bereits verspeisten Ameisen zurueck.
	 * @return die Anzahl der bereits verspeisten Ameisen.
	 */ 
	public int getAnzahlVerspeisterAmeisen();

	boolean verspeisenDesKaefersMoeglich(Kaefer k);
	
	
	
}
